Lab 08 - LIDAR based SLAM: HDL Graph SLAM
Robotics II
Poznan University of Technology, Institute of Robotics and Machine Intelligence
Laboratory 8: HDL Graph SLAM - Simultaneous localization and mapping using LIDAR
Back to the course table of contents
1. Simultaneous localization and mapping (SLAM)
SLAM is a method utilized for building a map of the environment and localizing in that map at the same time. Information provided by the created map is used for path planning and obstacle avoidance.
2. Laser-based SLAM
Laser sensors provide high precision distance measurements, which can be effectively used for map construction. Movement and traveled distance, which are utilized for localization, are estimated sequentially by matching the point cloud scans. Cloud matching is calculate with algorithms such as iterative closest point (ICP) or normal distributions transform (NDT)). The output map can be presented as a grid map or voxel map. However, sometimes in a simple environment with few obstacles, a laser-based SLAM algorithm may have a problem with the number of sufficient features for matching, which results in incorrect readings. In addition, point cloud matching requires high processing power, and a non-optimal approach may result in low performance.
EKF SLAM compares observed landmarks from the environment with known points: finds associations or adds new. Uses extended Kalman filter (EKF) with associations to correct the state and state covariance.
GraphSLAM utilizes sparse matrices generated with a factor graph of landmark observation.
3. HDL Graph SLAM
HDL Graph SLAM method was introduced by Kenji Koide, Jun Miura, and Emanuele Menegatti in the publication ,,A Portable 3D LIDAR-based System for Long-term and Wide-area People Behavior Measurement" (Advanced Robotic Systems, 2019). It is a real-time 6DOF SLAM for 3D lidar. This method utilizes NDT scan matching-based odometry estimation and loop detection. Moreover, information such as GPS, IMU acceleration (gravity vector), IMU orientation (magnetic sensor), and floor plane (detected in a point cloud) are supported in calculations. The official repository with the ROS package is available online as hdl_graph_slam.
4. Tasks
Run HDL Graph SLAM by calling
roslaunch hdl_graph_slam hdl_graph_slam.launch
, run single_lap_processed.bag rosbag and visualize in rviz processed/map_points
and/markers
topics fromhdl_graph_slam
node. Check how scans matched and the map becomes more complete. Take a screenshot of Rviz with visualization of messages.Go to the hdl_graph_slam package, for example, using the
roscd
command (roscd hdl_graph_slam
). Check and note which topics are used by the algorithm.